#ifndef _SIMULATE_SIGNAL_HPP_
#define _SIMULATE_SIGNAL_HPP_

#include "drivers_module.hpp"

typedef enum
{
    simulate_signal_status_fail,
    simulate_signal_status_ok,
} simulate_signal_status;

class SIMULATE_SIGNAL
{
private:

    CHIP_OUTPUT_PIN *A_pin;
    CHIP_OUTPUT_PIN *B_pin;
    uint32_t min_cycle_time;//周期时间 us
    rt_sem_t signal_sem;//每次需要跳变一周期时，会接收到一个信号量
    simulate_signal_status init_flag;
    uint8_t debug_flag;
public:
    SIMULATE_SIGNAL(
    CHIP_OUTPUT_PIN *A_pin,
    CHIP_OUTPUT_PIN *B_pin,
    uint32_t min_cycle_time);

    void SIMULATE_SIGNAL_in_thread_function();//放在线程中循环执行的函数
    void SIMULATE_SIGNAL_add_a_signal();//填充一个信号量，启动一轮周期



};


#endif /* _SIMULATE_SIGNAL_HPP_ */
